/* 测试 松散模式 (也称作普通模式或非严格模式) */

console.log( nickname ); // 输出 undefined
var nickname = '青翼蝠王' ; // 变量前置声明
console.log( nickname ); // 青翼蝠王

/* 以上 nickname 的处理过程如下:
   var nickname ; // 默认值是 undefined
   console.log( nickname ); // undefined
   nickname = '青翼蝠王' ; // 赋值语句仍然在原来位置
   console.log( nickname ); // '青翼蝠王'
*/

// 如果直接使用没有声明过的变量，则会触发 ReferenceError ，此时代码就会结束
// ReferenceError: username is not defined
// console.log( username ); 

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - */

// 在松散模式中强制为未声明变量赋值相当于重新声明一个变量然后再赋值
gender = '靓仔' ; // 相当于使用 var gender 声明了一个变量，然后再赋值
console.log( gender ); 